package com.creative.user.mapper;

import com.creative.user.domain.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
 * @description 用户信息表
 * @author Ling
 * @date 2024-11-12
 */
@Mapper
public interface UserInfoMapper {

    /**
     * 新增
     * @author ling
     * @date 2025/02/27
     **/
    Integer insert(UserInfo userInfo);

    /**
     * 刪除
     * @author ling
     * @date 2025/02/27
     **/
    Integer delete(String userId);

    /**
     * 批量刪除
     * @author ling
     * @date 2025/02/27
     **/

    Integer deleteBatch(String[]   ids);

    /**
     * 更新
     * @author ling
     * @date 2025/02/27
     **/
    Integer update(UserInfo userInfo);

    /**
     * 查询 根据主键 id 查询
     * @author Ling
     * @date 2024/11/12
     **/
    UserInfo selectById(String userId);
    /**
     * 查询 分页查询(带条件)
     * @author Ling
     * @date 2024/11/12
     **/
    List<UserInfo> selectUserInfoList(UserInfo userInfo);
    /**
     * 批量导出
     * @author ling
     * @date 2025/02/27
     **/
    List<UserInfo> exportBatch(String[]   ids);

    UserInfo selectByNameAndPassword(String nickName, String password);

    UserInfo selectByEmail(String email);

    Integer updatePassword(String password,String userId);


    /**
     * 按qqopen id查询
     *
     * @param qqOpenId qq开放id
     * @return {@link UserInfo }
     * @author ling
     * @date 2025/02/27
     */
    UserInfo selectByQQOpenId(String qqOpenId);

    /**
     * 按wxopen id查询
     *
     * @param wxOpenId wx打开id
     * @return {@link UserInfo }
     * @author ling
     * @date 2025/02/27
     */
    UserInfo selectByWXOpenId(String wxOpenId);
    /**
     * 统计用户数量
     *
     * @return {@link Long }
     * @author ling
     * @date 2025/04/28
     */
    Long calculateUser();
}